﻿namespace HamcoWcs.Models.Common.Enums
{
    /// <summary>
    /// MES交互信息用
    /// </summary>
    public enum EnumPconType
    {
        /// <summary>
        /// 非交互点
        /// </summary>
        None,
        /// <summary>
        /// 双向交互
        /// </summary>
        Double,
        /// <summary>
        /// port in 交互
        /// </summary>
        In,
        /// <summary>
        /// port out 交互
        /// </summary>
        Out,
        /// <summary>
        /// buffer位
        /// </summary>
        Buffer = 4,

        /// <summary>
        /// 上报PalletLocationChange
        /// </summary>
        Normal = 5,
        /// <summary>
        /// 
        /// </summary>
        NormalIn = 6,
        NormalOut = 7,



        PalletOut = 9,
        BoxOut = 10,
        PortOut = 11,
        LocationReport = 12,
        PalletIn = 19,
        BoxIn = 20,

        /// <summary>码头</summary>
        Wharf = 30,
        /// <summary>码头叉车连接设备</summary>
        Wharf1 = 31,




        NormalReport = 40,
        /// <summary>
        /// 普通出库设备，上报PalletLocationChange
        /// </summary>
        OutPortNormal = 41,
        /// <summary>
        /// 出库到产线目的点设备
        /// <br/>到达需要上报位置信息
        /// <br/>排出需要上报上报PalletLocationChangeReport
        /// </summary>
        OutPortInteractive = 42,


        ///<summary>实Pallet投入货架--对接新松设备
        ///<br/>需要快速移到InPortInteractive设备
        ///<br/>InPortInteractive设备对Mes发起退Port信号UR
        ///<br/>等待Mes指令
        ///</summary>
        InPortPicker = 51,
        /// <summary>实栈板入库口，任务起始节点</summary>
        InPortInteractive = 52,


        Lift = 70,
        RGV = 80

    }


    /// <summary>
    /// 设备类型
    /// </summary>
    public enum EnumDeviceType
    {
        /// <summary>
        /// 输送机
        /// </summary>
        CV,
        /// <summary>
        /// 堆垛机
        /// </summary>
        Srm,
        /// <summary>
        /// 提升机
        /// </summary>
        Lift,
        /// <summary>
        /// 穿梭车
        /// </summary>
        Rgv
    }

    /// <summary>(WCS << SRM)接收消息</summary>
    public enum EnumSrmRecvMsg
    {
        /// <summary>
        /// 已读
        /// </summary>
        None,
        /// <summary>
        /// 取货完成
        /// </summary>
        PickFinished,
        /// <summary>
        /// 任务完成
        /// </summary>
        TaskFinished,
        /// <summary>
        /// 盘点完成
        /// </summary>
        InventoryFinished,
        AbnormalRead,
        DoubleInbound,
        EmptyPick,
        RecoveryRequest
    }
    /// <summary>(WCS >> SRM)发送消息</summary>
    public enum EnumSrmSendMsg
    {
        /// <summary></summary>
        None,
        /// <summary>入库任务</summary>
        InBoundTask = 1,
        /// <summary>出库任务</summary>
        OutBoundTask,
        /// <summary>移库任务</summary>
        LocMoveTask,
        /// <summary>直出任务</summary>
        StraightOutTask,
        /// <summary>移动任务</summary>
        MoveTask,
        /// <summary>启动</summary>
        StartCmd,
        /// <summary>停止</summary>
        StopCmd,
        /// <summary>异常解除</summary>
        ResetCmd,
        /// <summary>禁用</summary>
        BlockCmd,
        /// <summary>盘点任务</summary>
        InventoryTask,
        /// <summary>读码器屏蔽</summary>
        BCRByPassCmd,
        /// <summary>读码器解除屏蔽</summary>
        BCRResetCmd,
        /// <summary></summary>
        ServoONCmd,
        /// <summary></summary>
        ServoOFFCmd,
        /// <summary>解除禁用</summary>
        UnblockCmd,

        AbnormalInCmd,

        AbnormalOutCmd,

        AllowRecoveryRequest
    }
    /// <summary>(WCS << PCON)接收消息</summary>
    public enum EnumPconRecvMsg
    {
        None,
        DesRequest,
        ArriveReport,
        PickDownReport,
        ChangeInModeRequest,
        ChangeOutModeRequest,
        ChangePalletFull,
        ChangePalletEmptyBox,
        ChangePalletPallet,
        ChangePalletNotSpacer,
        ValidatePalletRequest,
        PalletInReport,
        PalletOutReport,
        ReadFailure = 14,
        DisabledFailure = 15,
        EnabledFailure = 16,
    }
    /// <summary>(WCS >> PCON)发送消息</summary>
    public enum EnumPconSendMsg
    {
        None = 0,
        SnedTask = 1,
        UnOccupyCmd,
        StartCmd,
        StopCmd,
        ResetCmd,
        ChangeInModeCmd,
        ChangeOutModeCmd,
        ChangePalletSuccess,
        ChangePalletFailure,
        ValidateSuccess,
        ValidateFailure,
        BlockCmd,
        UnblockCmd,
        RejectChangeMode,
        MaterialInfoSendCmd,
        RemoteTurnOff = 16,
        RemoteTurnOon = 17,
    }

    public enum EnumPalletType
    {
        None,
        /// <summary>半成品</summary>
        FULL,
        /// <summary>空箱</summary>
        EMPTYBOX,
        /// <summary>栈板垛</summary>
        PALLET,
    }
}
